import numpy as np
import pandas as pd

data = {'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3', 'row4'])
print(df)

# .query() 是一个强大的方法，
# 可以通过表达式字符串来筛选数据。适用于你需要使用复杂的条件表达式时，使代码更加简洁易读。
# 它允许你使用字符串表达式来过滤 DataFrame 中的行
# 就相当于sql中的where条件

# 语法
# df.query('condition')

# 选择 A 列大于 2 的行
print(df.query('A > 2'))

# 选择 A 列大于 2 且 B 列小于 40 的行
print(df.query('A >2 and B < 40'))
print(df.query('A >2 & B < 40'))
print(df.query('A in [1,2,3]'))
code = [1,2,3]
print(df.query('A in @code'))